BÀI 4 LÀM VI C V I D ÁN CÓ NHI U FORM Ề

Một phần của tài liệu Giáo trình Lập trình windows (VB.net) (Trang 72 - 132)

M c tiêu c a bài:ụ

Hi u để ược đ c tính c a các đi u khi n hi n th  d  li u;ặ ủ ề ể ể ị ữ ệ Bi t quy trình thi t k  các d ng bi u m u;ế ế ế ạ ể ẫ

S  d ng đử ụ ược các đi u khi n c  b n;ề ể ơ ả

Khai báo và s  d ng đử ụ ược các thành ph n c a Moduleầ ủ

K t n i và hi n th  đế ố ể ị ượ ơ ở ữ ệc c  s  d  li u Access b ng DataGridview;ằ

Nghiêm túc, sáng t o, ch  đ ng trong vi c thi t k  và k  th a các d ngạ ủ ộ ệ ế ế ế ừ ạ   bi u m u khác nhau.ể ẫ

1. Thi t k  th c đ n b ng MenuStripế ế ự ơ

1.1 T o Menu

T o m i m t gi i pháp mang tên ạ ớ ộ ả MyMenu và thêm vào đó m t d  án m i cùngộ ự ớ   tên nh  đã bi t trong các bài t p trư ế ậ ước.

T i giao di n thi t k , các b n đ a đi u khi n ạ ệ ế ế ạ ư ề ể MenuStrip   vào trong  Form b ng cách double click hay kéo th  nh  đã bi t.ằ ả ư ế

Chúng ta không c n quan tâm đ n v  trí c a menu trên form vì VS s  t  đ ngầ ế ị ủ ẽ ự ộ   đ t nó sao cho phù h p. Các b n có th  thay đ i các thu c tính sao cho phù h pặ ợ ạ ể ổ ộ ợ   b ng cách click m  ằ ở Smart Tags là nút mũi tên tam giác màu đen bên góc ph i đi uả ề   khi n ể Menu.

Hình 25

Khi được đ t vào form thì đi u khi n menu s  đặ ề ể ẽ ược đ t t i m t vùng nh  trênặ ạ ộ ư   hình g i là ọ khay công c  ­ Component trayụ  và VS s  hi n th  tr c quan menu trênẽ ể ị ự   đ u c a s  Form.ầ ử ổ

Chu i ỗ Type Here là n i b n có th  click ch n và nh p vào các m c ch n choơ ạ ể ọ ậ ụ ọ   menu, chúng ta s  t o ra menu đ n gi n nh  sau:ẽ ạ ơ ả ư

Nh p chu t vào chu i ắ ộ ỗ Type Here và gõ vào chu i “Clock” và  n enter.ỗ ấ Nh p chu t vào chu i ắ ộ ỗ Type Here con   dở ướ ồi r i gõ Date, Time nh  hìnhư

Hình 26

Đ  đóng ph n thi t k  menu, chúng ta click vào m t vùng nào đó trên form, để ầ ế ế ộ ể  hi n th  l i click vào menu ể ị ạ Clock nh  trên.ư

1.2 M t s  tùy bi n cho Menuộ ố ế

1.2.1 Thêm phím truy c p vào các m c ch n l nh trên menu ọ ệ

Trong m t s  ph n m m hay ngay trình duy t Windows Explorer c a h  đi uộ ố ầ ề ệ ủ ệ ề   hành các b n có th   n t  h p ạ ể ấ ổ ợ Alt + phím t tắ đ  m  nhanh m t th c đ n nào đó.ể ở ộ ự ơ   Các phím t t  y đắ ấ ược g i là phím truy c p –  ọ ậ Access Key. Phím này có d u g chấ ạ   chân   dở ưới.

Trong .NET, đ  t o phím này   menu chúng ta ch  vi c gõ thêm d u ‘&’ trể ạ ở ỉ ệ ấ ước  ký t  nào mu n hi n th  g ch chân trong ph n ự ố ể ị ạ ầ Type Here.

Ví d  sau đây t o ra các phím t t cho các m c ch n c a menu ụ ạ ắ ụ ọ ủ Clock nh  hình:ư

Hình 27

1.2.2 Thay đ i th  t  các m c ch n ứ ự

Đ  thay đ i th  t  các m c ch n chúng ta m  ch  đ  thi t k  menu r i nh pể ổ ứ ự ụ ọ ở ế ộ ế ế ồ ắ   ch n m c ch n nào đó và kéo nó đ n v  trí mong mu n.ọ ụ ọ ế ị ố

Ch ng h n đ  kéo m c ch n ẳ ạ ể ụ ọ Time lên thay cho v  trí m c ch n ị ụ ọ Date, trước tiên  chúng ta nh p và gi  chu t m c ch n ắ ữ ộ ụ ọ Time và kéo th  lên phía trên m c ch n ả ụ ọ Date 

1.2.3 Đ t tên và thu c tính cho menu

Đ  thay đ i thu c tính tên cho 1 menu, ch n Properties c a menu đó.ể ổ ộ ọ ủ

Hình 28 Ví d : ụ

­ Thay đ i tên menu: vào thu c tính Text.ổ ộ ­ Ví trí tên menu :  TextAlign.

­ Màu n n: BackColor.ề ­ Màu ch : ForeColor, …ữ

Đ  thay đ i thu c tính nào chúng ta ch n vào thu c tính đó và thay đ i giá trể ổ ộ ọ ộ ổ ị  m i tùy theo ki u giá tr  c a thu c tính.ớ ể ị ủ ộ

Vì v y, đ  đ t tên cho control hay m t menu c  th  chúng ta vào thu c tínhậ ể ặ ộ ụ ể ộ   Name:

Tên hi n t i là “DateToolStripMenuItem”   có th  thay đ i theo ý mu n c aệ ạ ể ổ ố ủ   ngườ ậi l p trình. Thu c tính Name  độ ược g i trong quá trình l p trình các s  ki n đọ ậ ự ệ ể  th c thi  ng d ng.ự ứ ụ

1.3 Vi t l nh cho s  ki n c a menuế ệ ự ệ

Các S  kiên c a menu n m trong m c Event c a c a s  thu c tính (Properties).ự ủ ằ ụ ủ ử ổ ộ

Hình 29

Đ  minh h a, chúng ta vi t l nh cho s  ki n nh p chu t vào menu b ng cáchể ọ ế ệ ự ệ ấ ộ ằ   nh p đôi chu t vào s  ki n Click đ  vi t l nh, m t s a s  code s   hi n ra, ngắ ộ ự ệ ể ế ệ ộ ử ổ ẽ ệ ười  l p trình ch  c n vi t ph n th c hi n công vi c mình mong mu n gi a th  t c sậ ỉ ầ ế ầ ự ệ ệ ố ữ ủ ụ ự  ki n Private Sub…End Sub.ệ

Private Sub DateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateToolStripMenuItem.Click

MessageBox.Show("Ngày hiện tại: " + Today.ToString()) End Sub

Khi người dùng   n vào menu “Date”  chấ ương trình s   xu t hi n h p tho iẽ ấ ệ ộ ạ   thông báo ngày tháng hi n t i.ệ ạ

Hình 30 2. Thi t k  các d ng formế ế

2.1 Form cha

Hình 31

Gi  s  tên form là frmMain, đ  form trên tr  thành form cha chúng ta hãy ch cả ử ể ở ắ   ch n r ng đã ch n thu c tính:ắ ằ ọ ộ  IsMdiContainer = True đ  thi t l p đây là Form cha.ể ế ậ

2.2 Form con

Thêm vào Project hai form m i là  “Thêm nhân viên” (frmEmployee) và “Danhớ   sách nhân viên” (frmListEmpoyee).

Hình 32

Form “Thêm nhân viên” (frmEmployee)

Hình 33

Vi t s  ki n Click cho 2 nút “Thêm nhân viên” và “Danh sách nhân viên” trênế ự ệ   thanh MenuStrip c a Form Cha đ  hi n th  form tủ ể ể ị ương  ng.ứ

frmEmployee.MdiParent = Me frmEmployee.Show()

frmListEmployee.MdiParent = Me frmListEmployee.Show()

Khi ch n ch c năng t  menu tọ ứ ừ ương  ng, các form con s  “n m g n” trong formứ ẽ ằ ọ   cha nh  hình dư ưới đây:

Hình 34

Chú ý, thu c tính  ộ  MdiParent dùng đ  thi t l p Form Cha c a các form nàyể ế ậ ủ   là frmMain.

3. S  d ng các đi u khi n c  b nử ụ ơ ả

3.1 Mi quan h gia thuc tính, phương th c và  s ki n

M cặ  dù thu cộ  tính, ph ngươ   thức và sự ki nệ  có vai trò khác nhau nh ngư   chúng  th ngườ   xuyên liên hệ  v iớ   nhau.  Ví  dụ,  n u taế   di  chuyển  một  đi u khi nề ể   b ngằ   ph ngươ  thức Move thì m t s  thu cộ ố ộ  tính như  Top, Height, Left, Width sẽ thay đ iổ  theo theo, khi đó kích cỡ c a điủ ều khiển thay đ iổ tức là sự ki nệ  Resize xảy ra.

Phụ  thu cộ   l nẫ   nhau  còn có  nghĩa  là  ta  có  thể  thực  hi nệ   m t cộ ông  vi cệ   bằng  nhi uề  cách: xử lý trên thu cộ  tính ho cặ  xử lý b ngằ  ph ngươ  thức.

Ví d: ta có 2 cách để làm h pộ  văn b nả  textBox1 xu tấ  hiện và biến m tấ  trên  màn hình:

 Thực hi nệ  b ngằ  thu cộ  tính:

Xu tấ  hi nệ : TextBox1.Visible = True

Bi nế  m tấ: TextBox1.Visible = False

 Thực hi nệ  b ngằ  ph ngươ  thức:

Xu tấ  hi nệ : TextBox1.Show()

Bi nế  m tấ:  TextBox1.Hide()

3.2  Thuc tính, phương th c,  s ki n  c a  mt s đi u  khi n c  b ơ ản 3.2.1  Form

3.2.1.1.  Thu cộ  tính

Name Tên form, bắt đầu b i ở tiếp đầu ng  ữfrm BackColor Thiết lập mầu nền cho Form.

BackgroundImage Thiết lập ảnh nền cho Form.

BackgroundImageLayout Thiết lập chế độ hiển thị ảnh nền trên Form. Tile:  hiển thị ảnh t  trừ ên  xu nố g,  Center:  hiển  thị ảnh  từ  gi aữ  ra, Stretch: dãn đều ảnh trên Form.

AcceptButton Thiết  lập  nút  lệnh  Accept.  Sự  kiện  Click  c aủ   nút  lệnh  này  đ cượ   g i bọ ất c  khi nào  ứ ng iườ  dùng  bấm  phím Enter.

CancelButton Thiết  lập  nút  lệnh  Cancel.  Sự  kiện  Click  c aủ   nút  lệnh  này  đ cượ   g i bọ ất c  khi nào  ứ ng iườ  dùng bấm  phím Esc.

Cursor Thiết lập chế đ  hiộ ển thị con tr  trỏ ên Form.

Enabled Nếu  nhận  giá  trị  True  thì  cho  phép  ng iườ  dùng  tác  động lên Form, Ngược lại thì nhận giá tr  ịFalse. Font Thiết lập kiểu ch , ữ cỡ ch  ữ cho các điều khiển trên 

Form.

ForeColor Thiết lập mầu ch  ữcho các điều khiển trên Form. FormBorderStyle Thiết lập kiểu đƣờng viền cho Form. Fixed Single: 

không thể thay đ iổ  kích th cướ  c aủ  Form, Sizable: có  thể  phóng to  thu  nhỏ  và  thay đ iổ  kích  thước  c aủ   Form,  Sizable  ToolWindow:  có  thể  thay  đ i kíchổ   th cướ  c aủ  Form…

Icon Thiết  lập   biểu  t ngượ   cho  Form   (các  tệp ảnh  có  đuôi .ico).

MainMenuStrip Gắn kết Form v i Menu.ớ

Opacity Thiết  lập  độ  trong  su tố  cho  nền  c aủ   Form,  nếu  độ  trong  su tố  <100%  thì  có thể  nhìn  xuyên thấu  những gì nằm bên d iướ  Form.

ShowIcon Nếu  nhận  giá  trị  True  thì  cho  phép  hiển  thị  biểu  tượng  đã  được thiết  lập   thu cở ộ   tính  Icon, ngược  lại thì nhận giá tr  ị False.

StartPosition Thiết  lập vị trí xuất  hiện  c aủ  Form trên màn hình.  Manual:  xuất   hiện    ở góc  trên   bên   trái  màn   hình,  CenterScreen: gi aữ  màn hình…

Text Thiết lập dòng tiêu đề của Form.

Window State Thiết  lập   trạng   thái  c aủ   Form   khi  chạy  ch ngươ   trình.  Normal: hiểnthị Form đúng theo kích cỡ thiết  kế,  Maximized:  phóng  to  Form   bằng  màn   hình,  Minimized: thu nh  ỏForm trên thanh Taskbar

3.2.1.2.  Sự ki nệ

Để hi n thể ị danh sách các sự ki n c a cácệ ủ  đi u khi n,ề ể  ta kích chu tộ tại bi uể   tượng   trên cửa s  Propertổ ies:

Hình 35. Các s  ki n c a Formự ệ ủ

Mu n g i  s  ki n  nào  thì  ta kích   đúp chu t  vào tên  s  ki n   đó,  k t  quố ọ ự ệ ộ ự ệ ế ả  VISUAL BASIC s  t  đ ng t o ra dòng tiêu đ  c a phẽ ự ộ ạ ề ủ ương th c ch a s  ki nứ ứ ự ệ   trong c a s  code.ử ổ

Form có m t s  s  ki n thông d ng nh  sau:ộ ố ự ệ ụ ư

Load đ cượ   kích hoạt  khi Form được nạp vào  bộ  nh ,ớ nó th ngườ   được  dùng  để  kh i tở ạo các giá tr  vàị  trạng thái cho các biến, các điều  khiển… trên Form.

Click đ cượ  kích hoạt khi ng iườ dùng kích chu t ộ trên Form.

FormClosed đ cượ   kích hoạt khi  ng iườ  dùng kích chu tộ vào  nút Close x ở góc  trên bên phải để đóng Form.

FormClosing Cũng đ cượ   kích  hoạt  khi  ng iườ  dùng kích  chu tộ  vào  nút  Close x,  nh ngư  xảy ra tr cướ  sự kiện FormClosed t cứ  là đ cượ  phát sinh tr cướ   khi c aử  sổ Form chuẩn b  đóngị  l i.ạ

Ví  d :ụ  N uế   không  muốn  ng iườ  dùng  đóng  Form  b ngằ   cách  bấm  ch nọ   bi uể   tượng Close thì trong thủ t cụ  FormClosing ta đ tặ  thu cộ  tính Cancel = True như sau:

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

e.Cancel = True End Sub

3.2.2  H p  văn b n  ­ TextBox

H pộ  văn  b nả     là  đi uề   khi nể  r tấ  thông dụng, dùng để  nh pậ  dữ  liệu  đầu vào từ phía ng iườ sử d ngụ  và hi nể  thị các k tế quả đã tính toán được.

3.2.2.1.  Thu cộ  tính

Name Tên Textbox, bắt đầu b iở tiếp đầu ng  ữtxt BackColor Thiết lập mầu nền cho hộp TextBox.

Enabled Enabled=False:  không  cho  phép  ng iườ    dùng  truy  cập  vào  TextBox  (H p Tộ extbox b  m  đi), nị ờ g cượ  lại thì bằng True.

Font Thiết lập kiểu ch  vàữ  cỡ ch  ữcho h p vộ ăn bản. ForeColor Thiết lập mầu ch  ữcho hộp văn bản.

Locked Locked = True: khóa không cho phép dịch chuyển vị trí c aủ  h pộ   văn bản trên Form, ng cượ  lại thì nhận giá trị False.

MaxLength Quy  đ nhị   chiều  dài  t iố  đa  đ cượ   chấp  nhận  c aủ   hộp  văn  bản,  giá trị mặc định là 32767 hoặc 0, t cứ  là có thể ch aứ  32767 ký  t .ự  M iọ  xác  lập  khác  0,  ví  dụ  5 thì  ch  ỉ cho phép  ng iườ  dùng  nhập t i đa 5 ố ký t  ựvào h p vộ ăn bản.

Multiline Multiline = False: chỉ cho phép hiển thị văn bản trên m tộ dòng,  và khi thiết kế ta ch  thỉ ay đ i ổ đ cượ  đ  dộ ài c aủ  h p vộ ăn bản. Multiline  =  True:  cho  phép  văn  bản  đ cượ   hiển  thị  trên  nhiều  dòng, và có th  thể ay đ i ổ cả đ  dộ ài lẫn độ r ng c aộ ủ  h p ộ văn bản  khi thiết kế.

PasswordChar Thu cộ   tính  này  cho  phép  người sử  dụng  bảo  mật  được thông  tin  nhập  vào Textbox. Ví dụ đặt thu cộ  tính này bằng ký tự „*‟  khi đó toàn bộ dữ liệu nhập vào sẽ đ cượ  hiển th  ịd iướ  dạng dấu  hoa th .ị

ReadOnly ReadOnly = True: h pộ  văn bản vẫn đ cượ  truy cập nh ngư  người  dùng không th  thể ay đ i ổ đ cượ  n i dungộ  bên trong.

ScrollBars Thiết lập thanh cu nố  ngang, d cọ  cho h pộ  văn bản (có hiệu l cự   khi  Multiline = True). Chú ý: thanh cu n nố gang ch  ỉ có hiệu lực  khi WordWrap = False.

TabIndex Thứ  tự  truy  cập  c aủ   h pộ   văn  bản  khi  ng iườ  dùng  bấm  phím  Tab, thứ tự đầu tiên là 0.

Text Ch aứ  n i dung ộ c aủ  h p ộ văn bản.

TextAlign Thiết  lập  chế  độ  căn   ch nh:ỉ   trái,  phải  hoặc  gi aữ   của  dữ  liệu  trong  h p Tộ extBox.

Visible Visible =  True: hiển th  ị h p vộ ăn bản, Visible =  False: ẩn  h pộ   văn bản.

WordWrap  WordWrap = True: dòng văn b n đả ược t  đ ng cu n xu ngự ộ ộ ố   dòng khi g p l  bên ph i c a h p TextBox, ngặ ề ả ủ ộ ượ ạc l i thì nh nậ   giá tr  False. Ch  có hi u l c khi Multiline = Trueị ỉ ệ ự

3.2.2.2 S  ki nự ệ

H p văn b n có m t s  s  ki n c  b n sau:ộ ả ộ ố ự ệ ơ ả

TextChanged được  kích  hoạt  khi  ng iườ  dùng  th cự   hiện  sự  thay  đ iổ  bất  kỳ  trong h p vộ ăn bản nh :ư  thêm, xoá, sửa, dán văn bản.

Click đ cượ  kích hoạt khi ng iườ dùng kích chu t ộ vào hộp văn bản. DoubleClick đ cượ  kích hoạt khi ng iườ dùng kích đúp chu t ộ vào h p vộ ăn bản. GotFocus đ cượ  kích hoạt khi ng iườ dùng chuyển tiêu điểm t i h p vớ ộ ăn bản. KeyPress Trả về ký tự (trừ các ký tự đặc biệt như phím Delete, Home, Ctrl, 

F1…)mà ng iườ s  dử ụng gõ vào h p vộ ăn bản thông qua thu cộ  tính  KeyChar.

KeyDown Trả về mã Ascii của tất cả các ký tự mà ng iườ  sử d ngụ  gõ vào  h pộ  văn bản thông qua thu cộ  tính KeyCode.

MouseMove đ cượ  kích hoạt khi ng iườ dùng di chuyển chu t ộ qua h p vộ ăn bản. MouseLeave đ cượ  kích hoạt khi ng iườ dùng d i chu t raờ ộ  kh iỏ  h p vộ ăn bản.

Ví d 1: Để hi nể  thị mã Ascii c aủ  m tộ ký tự b tấ  kỳ đ cượ  gõ vào h p vănộ  b nả  

TextBox1 ta có

đo nạ  ch ngươ  trình như sau:

Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles

TextBox1.KeyDown

MessageBox.Show(e.KeyCode) End Sub

Ví d 2: Dùng sự ki nệ  KeyPress để ki mể  tra vi cệ  nh pậ  dữ li u:ệ  chỉ cho phép  nh pậ  vào hộp văn b nả  TextBox1 các số từ 0 t iớ  9, d uấ  âm ­ , d uấ  chấm th pậ  phân  .  ,  phím  Del  (có  mã Ascii=13)  và  phím  Backspace  (có  mã  Ascii  =  8)  để  xóa  dữ  li u.ệ  Ta có đo nạ  chương trình như sau:

Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If (e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = "-" Or e.KeyChar = "." Or

Convert.ToInt32(e.KeyChar) = 8 Or Convert.ToInt32(e.KeyChar) = 13 Then e.Handled = False Else e.Handled = True End If End Sub

N uế  m iỗ ký tự được nh pậ  vào h pộ  Textbox không thoả mãn đi uề  ki nệ  if   thì  sẽ bị hủy bỏ

3. 2.3  Nút l nh  – Button

Nút l nhệ    cho phép ng iườ dùng thực hiện một hành đ ngộ  nào đó. 3.2.3.1.  Thu c tínhộ

Name Tên nút lệnh, bắt đầu b iở  tiếp đầu ng  ữ btn BackColor Thiết lập mầu nền cho nút lệnh.

BackgroundImage Thiết lập ảnh nền cho nút lệnh.

Enabled Enabled=False:  ng iườ  dùng  không  thể  tác  đ ngộ   lên  nút  lệnh, ng cượ  lại thì bằng True.

Font Xác lập kiểu ch  vàữ  c  ỡch  ữcho nút lệnh. ForeColor Thiết lập mầu ch  ữcho nút lệnh.

Image Thiết lập ảnh hiển th  trị ên nút lệnh.

Locked Locked  =  True:  khóa  không  cho  phép  dịch  chuyển  vị  trí  c aủ  nút lệnh trên Form, ng cượ  lại thì nhận giá tr  ịFalse.

TabIndex Th  t  trứ ự uy cập c aủ  nút lệnh khi ng iườ dùng bấm phím Tab. Text Tiêu  đề  c aủ   nút  lệnh.  Ta  có  thể  quy  đ nhị   phím  nóng  cho 

nút lệnh bằng cách đặt dấu “&” tr cướ  m t ộ ký t  ực aủ  Text. Ví  dụ  &Quit  sẽ  được hiển  thị  là  Quit,  khi  ng iườ  sử  d ngụ   bấm Alt+Q ch ngươ  trình sẽ kích hoạt nút lệnh Quit.

Visible Visible =  True: hiển th  ị nút  lệnh, Visible =  False: ẩn nút  3.2.3.2.  Sự ki nệ

Nút l nhệ  có m tộ  số sự ki nệ  cơ bản sau:

Click đ cượ  kích hoạt khi ng iườ dùng kích chu t ộ vào nút lệnh.

GotFocus đ cượ   kích hoạt khi  ng iườ  dùng  chuyển tiêu điểm  t i nútớ   LostFocus đ cượ  kích hoạt khi nút lệnh mất tiêu điểm.

MouseDown đ cượ  kích hoạt khi ng iườ dùng đặt chu t ộ vào nút lệnh. MouseUp đ cượ  kích hoạt khi ng iườ dùng đ aƣ  chu t raộ  kh iỏ nút lệnh. MouseMove đ cượ   kích hoạt khi  ng iườ  dùng  di chuyển  chu t  ộ trên nút  MouseLeave đ cượ  kích hoạt khi ng iườ dùng d i chu t raờ ộ  kh iỏ nút lệnh.

3.2.4 Nhãn – Lable

Nhãn   dùng để hi nể  thị những thông tin có tính ch tấ  c  đ nhố ị  ng iườ  sử  d ngụ  không có kh  ảnăng thay đ iổ ví d  ụnhư dòng thông báo, hƣớng d nẫ  …

Nhãn có m tộ  số thu cộ  tính hay dùng sau:

Name Tên nhãn, bắt đầu b i ở tiếp đầu ng  ữlbl

Một phần của tài liệu Giáo trình Lập trình windows (VB.net) (Trang 72 - 132)

Tải bản đầy đủ (PDF)

(132 trang)